home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / tex / tex31 / texbin.zoo / readme-e.inf < prev    next >
Text File  |  1991-07-19  |  18KB  |  428 lines

  1. Info file: readme-e.inf,    -*-Text-*-
  2. produced by texinfo-format-buffer
  3. from file: readme-e.tex
  4.  
  5.  
  6. This file documents a TeX 3.1 and METAFONT 2.7 implementation for the
  7. Atari ST based on the WEB2C kit 5.8a from Karl Berry.
  8.  
  9. Copyright (C) 1990,1991 Frank Ridderbusch
  10.  
  11. Permission is granted to make and distribute verbatim copies of
  12. this manual provided the copyright notice and this permission notice
  13. are preserved on all copies.
  14.  
  15. Permission is granted to copy and distribute modified versions of this
  16. manual under the conditions for verbatim copying, provided also that
  17. the entire resulting derived work is distributed under the terms of a
  18. permission notice identical to this one.
  19.  
  20. Permission is granted to copy and distribute translations of this manual
  21. into another language, under the above conditions for modified versions.
  22.  
  23.  
  24.  
  25.  
  26. Preface
  27. =======
  28.  
  29. If you have already read earlier versions of this readme file, you can
  30. directly turn to the section "Dynamic memory allocation".
  31.  
  32. There is one important modification, I made, that I would like to
  33. mention just at the beginning. There are *no* files
  34. `initex.ttp' or `inimf.ttp' any longer, as there have been in
  35. earlier versions. I have merged the functions which are unique to
  36. `initex.ttp' or `inimf.ttp' into one executable (no big deal,
  37. only changing some defines). Therefore only the files `tex.ttp' and
  38. `mf.ttp' are in the archive. The specific `initex' or
  39. `inimf' functions (dumping) are selected by a commandline option.
  40. (See section `Installation and Usage')
  41.  
  42.  
  43. General Remarks
  44. ===============
  45.  
  46. This archive contains executables for the Atari ST. All executables
  47. were generated from the WEB and the WEB2C sources version 5.8a, which
  48. Karl Berry announced and released in a TeXhax digest, which appeared
  49. on my news site during November 1990.
  50.  
  51. The Atari executables were first compiled with the GNU C compiler
  52. v1.37.1 running in an Un*x cross-compiling environment. The resulting
  53. objects were then linked with the C-library (at patchlevel 58), which
  54. J.R.Bammi and E.R.Smith put together (Thanks to both of them for their
  55. good work). Later, after some additional minor changes, I recompiled the
  56. C sources with GCC v1.38 and maximum optimization at home on my ST,
  57. which is equipped with 2,5 meg. After obtaining GCC v1.40, the final
  58. recompilation took place with this version. The executables are
  59. currently linked with the library (version 8) from E.R.Smith, which he
  60. build for MiNT, his multitasking TOS extension. Additionally the archive
  61. contains a BigTeX version with very large buffers (for those of you,
  62. who have a Mega 4 ST and use very large macro packages).
  63.  
  64. If you don't have a cross compiling environment and want to recompile
  65. the sources, you can just as well convert the WEB sources to C on your
  66. local Un*x box and then carry the C sources home. If you want to do
  67. this, it a good idea to decrease the constant `MAXLINES' to `1000' in
  68. the file `src-5.8a/web2c/splitup.c'. After that, you should be able to
  69. compile all files.
  70.  
  71.  
  72. Implementation Details
  73. ======================
  74.  
  75. The files from the WEB2C kit required only very minor changes, mostly
  76. things concerning the slash as a path separator opposed to the backslash
  77. the Atari uses. TeX and METAFONT both discard any `\r' (Carriage Return)
  78. character before a `\n' (Newline) in the input of normal tex files (The
  79. everlasting difference between Un*x and other systems; `\n' versus
  80. `\r\n' as line separators). I also modified the programs `pltopf' and
  81. `vptovf' to ignore any `\r' characters. If you encounter any problems
  82. with error messages about illegal character in the input file, try at
  83. first to remove any `\r' characters before you investigate further. It
  84. should be trivial to write a small utility, which removes all `\r'
  85. characters from an input file.
  86.  
  87. TeX and METAFONT both passed the trip and the trap tests on the Atari.
  88.  
  89. METAFONT doesn't have any window support on the ST. (If someone would
  90. write a window interface for the ST, I would be very interested.) I
  91. don't mean a GEM interface with this remark. METAFONT has a
  92. rudimentary window interface, to display proof mode character on
  93. screen. The WEB2C kit provides support for X11, X10 and some others.
  94.  
  95. All executables will open any file in binary mode.
  96.  
  97.  
  98. Installation and Usage
  99. ======================
  100.  
  101. The complete TeX and METAFONT environment is controlled via
  102. environment variables ala Un*x. On my Atari I've set the following
  103. values (as an example under gulam):
  104.  
  105.      # All TeX font metric files are here.
  106.      setenv TEXFONTS f:\tex\texinput\tfm
  107.      # The dumped format files are found here.
  108.      setenv TEXFORMATS f:\tex\formats
  109.      # search paths for TeX input files
  110.      setenv TEXINPUTS .;f:\tex\texinput\latex\styles;f:\tex\texinput\macros
  111.      # The TeX string pool file is found here.
  112.      setenv TEXPOOL f:\tex
  113.      # The Metafont string pool file is found here.
  114.      setenv MFPOOL f:\metafont\mfbases
  115.      # The dumped base file is found here.
  116.      setenv MFBASES f:\metafont\mfbases
  117.      # search paths for Metafont input files
  118.      setenv MFINPUTS .;f:\metafont\mfinputs\cmr
  119.  
  120. (For a detailed description the above environment variables see the
  121. manual pages in the file `manpages.lzh', also available from the atari
  122. archive at terminator.)
  123.  
  124. The executables don't care about slashes or backslashes as path
  125. separators. Both can be used. Don't mind, that the string pool files are
  126. called `*.poo' instead of `*.pool''. The executables have no problems to
  127. find them.
  128.  
  129. The `initex' or `inimf' specific functions (dumping) are selected by
  130. giving the option `-i' as the last argument. Therefore to create the
  131. `plain.fmt' you have to issue the following commandline (assuming the
  132. environment variables are set correctly):
  133.  
  134.      tex 'plain \dump' -i
  135.  
  136. The same applies to METAFONT. As a sidenote, the `plain.fmt' file from
  137. the BigTeX is about 110 KB larger than the one from the normal TeX,
  138. which is about 168 KB in size. The absolute sizes vary depending on the
  139. sizes of the internal buffers.
  140.  
  141. Also the utility programs may search along some path for some files set
  142. by an environment variable. So, if one program complains about a file,
  143. that it can't find although it is in the current directory, prefix the
  144. filename with `./' ot `.\'.
  145.  
  146.  
  147. Dynamic Memory allocation for TeX
  148. =================================
  149.  
  150. The TeX versions dated later than March 2nd, 1991 have a dynamic
  151. memory allocation scheme for most of the large arrays. The startup
  152. message reflects this (TeX Version 3.1t2var). There are certainly better
  153. schemes, to achieve dynamic allocation, but I found, that the chosen
  154. approach required only very minimal changes to the source files.
  155.  
  156. Originally the header file `texd.h' (part of the sources) contained some
  157. defines for the values of `memmax', `memtop', `triesize' etc. I changed
  158. these defines into variables and also changed the dependent array
  159. declarations into pointer declarations. Now, before the main TeX code
  160. gets control, these pointer are initialized with malloced memory. Since
  161. I don't know, if there are any places in the code, which assume that
  162. uninitialized memory is cleared, the flag, which prevents TOS from
  163. clearing the whole TPA should not be set. This is to make really sure,
  164. that malloced memory is cleared. If you have a TOS version earlier than
  165. 1.4, you don't have to bother with this, since these version clear the
  166. whole memory with every program launch.
  167.  
  168. To be able to modify the size of the arrays in the executables, I
  169. borrowed the idea of the programs `fixstk.ttp' and `printstk.ttp', which
  170. come with the binary distribution of GNU-C for the ST. These two
  171. programs allow the modification or the display of the variable
  172. `stksize', which determines, how the stack and the memory is used by a
  173. program.
  174.  
  175.  
  176. TeX-CONF.TTP
  177. ============
  178.  
  179. I therefore wrote a program called `tex-conf.ttp', which allows the
  180. modification and the display of TeX's main configuration values. This
  181. works only if the executable is unstripped, because the information,
  182. which is present in the symbol table is used to locate the variables in
  183. the executable. Therefore you should never strip the TeX or METAFONT
  184. executables, or, if you do, then keep unstriped versions around.
  185.  
  186. A sample output of `tex-conf.ttp